/*Copyright (C) 2009 Careil Baptiste

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

///////////////////////////////////////////////////////////
/// \file Colors.h Ce fichier contient les fonctions permettant de 
/// modifier les couleurs de la console.
///////////////////////////////////////////////////////////

#ifndef CSLP_COLORS_HEADER
#define CSLP_COLORS_HEADER

#include "dll.h"

#ifdef __cplusplus
extern "C" {
#endif

///////////////////////////////////////////////////////////
/// Enumération des couleurs.
///
/// Permet de choisir une couleur. La palette est constituée de 16
/// couleurs. Pour passer à la palette "clair", faites COLOR|LIGHT
/// ou COLOR est la couleur choisit.\n
/// Default est la couleur par défaut
/// du système.
///
/// \sa CSLP_Color(), CSLP_ColorText(), CSLP_ColorBG()
///////////////////////////////////////////////////////////
typedef enum CSLP_COLORTYPE {//	TXT  BG	       TXT BG
	BLACK,		//UNIX: 30 | 40, WIN32: 0
	RED,		//UNIX: 31 | 41, WIN32: 4 | *16
	GREEN,		//UNIX: 32 | 42, WIN32: 2 | *16
	YELLOW,		//UNIX: 33 | 43, WIN32: 6 | *16
	BLUE,		//UNIX: 34 | 44, WIN32: 1 | *16
	VIOLET,		//UNIX: 35 | 45, WIN32: 5 | *16
	CYAN,		//UNIX: 36 | 46, WIN32: 3 | *16
	WHITE,		//UNIX: 37 | 47, WIN32: 7 | *16
	DEFAULT = 16,	//UNIX: 39 | 49, WIN32: 7 | 0
	LIGHT = 32,	//UNIX:+60 |+60, WIN32:+8 | *16
} CSLP_COLORTYPE;

///////////////////////////////////////////////////////////
/// Permet de réinitialiser les couleurs par défaut de la console.
/// Soit noir sur blanc pour WIN32 et paramètre par défaut pour UNIX
///
/// \sa CSLP_Color(), CSLP_ColorText(), CSLP_ColorBG()
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_ResetColors();

///////////////////////////////////////////////////////////
/// Permet d'initialiser la couleur de texte de la console.
/// La couleur du texte n'est pas conservée lors d'un changement.
///
/// \param color La nouvelle couleur du texte.
/// \sa CSLP_ResetColors(), CSLP_ColorBG(), CSLP_Color(), CSLP_COLORTYPE
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_ColorText(CSLP_COLORTYPE color);

///////////////////////////////////////////////////////////
/// Permet d'initialiser la couleur de fond de la console
/// La couleur du fond n'est pas conservée lors d'un changement
///
/// \param color La nouvelle couleur du fond.
/// \sa CSLP_ResetColors, CSLP_ColorTxt, CSLP_Color(), CSLP_COLORTYPE
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_ColorBG(CSLP_COLORTYPE color);

///////////////////////////////////////////////////////////
/// Permet l'initialisation des couleur du fond et du texte de la console.
///
/// \param txt La nouvelle couleur du texte
/// \param bg La nouvelle couleur du fond
/// \sa CSLP_ResetColors, CSLP_ColorTxt, CSLP_ColorBG, CSLP_COLORTYPE
///////////////////////////////////////////////////////////
void DLL_IMPEXP CSLP_Color(CSLP_COLORTYPE txt, CSLP_COLORTYPE bg);

#ifdef __cplusplus
}
#endif

#endif

